#ifndef CCommandsDispatcher_HPP
#define CCommandsDispatcher_HPP

// System includes

// Other includes
#include "CObserver.hpp"
//#include "CCommand.hpp"
#include "CSerialReader.hpp"
#include "CSocketReader.hpp"

class CObserver;
class CCommand;

class CCommandsDispatcher : public CObserver
{
public:
   ~CCommandsDispatcher();

   void setReaderPointers(CSocketReader* pSocketPtr, CSerialReader* pSerialPtr);

   void handleEvent(const CCommand& cmd);

   static CCommandsDispatcher* getInstance();
protected:

private:
   CCommandsDispatcher();

   static CCommandsDispatcher* mSelf;
   CSocketReader* mpSocketPtr;
   CSerialReader* mpSerialPtr;
};

#endif // CCommandsDispatcher_HPP